package flex.cc.fenfa.service;

import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import flex.cc.base.dto.LoginAuthDto;
import flex.cc.fenfa.dto.RuleMainEntity;

/**
*
* @author WANGCONG
* 2021年10月12日下午3:02:11
* @desc 分发规则Service层
*/
public interface RuleMainService extends IService<RuleMainEntity>{

	/**
	*
	* @author WANGCONG
	* 2021年10月12日下午3:35:16
	* @desc 分发规则状态切换
	*/
	boolean modifyRuleStatus(RuleMainEntity ruleDto, LoginAuthDto loginAuthDto);

	/**
	*
	* @author WANGCONG
	* 2021年10月12日下午4:05:02
	* @desc 分页查询规则
	*/
	IPage<RuleMainEntity> queryListWithPage(RuleMainEntity ruleDto);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月13日上午9:02:19
	 * @desc 根据规则名称查看数量，校验规则名称唯一性
	 */
	int findCountByRuleName(RuleMainEntity vo);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月13日上午9:05:17
	 * @desc 规则信息保存
	 */
	void save(Map<String, Object> reqVo);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月14日下午1:55:37
	 * @desc 根据规则Id查询
	 */
	RuleMainEntity queryByRuleId(String ruleId);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月17日下午5:36:59
	 * @desc 根据渠道方、省市区、服务类型匹配分发规则
	 */
	RuleMainEntity choiceServicer(Map<String, Object> paramsMap);

	/**
	 * @description 根据救援商id查询对应的规则是否为空或者0%，用于禁用救援商时判断【2.2-服务包配置需求】
	 * @param serviceId 救援商id
	 * @return 对应的规则名称
	 * @author wkangle
	 * @time 2022/03/07 0007 10:00
	 * @exception/throws
	 */
	String queryRuleNamesByServiceId(String serviceId);

}
